package com.sky.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sky.entity.Dish;
import com.sky.mapper.DishMapper;
import com.sky.service.DishService;
import com.sky.vo.DishOverViewVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class DishServiceImpl
        extends ServiceImpl<DishMapper, Dish>
        implements DishService {
    @Autowired
    private DishMapper dishMapper;


    /**
     * 获取不同状态下的菜品概览
     *
     * 本方法通过调用dishMapper的两个方法，分别获取停售和在售的菜品数量，
     * 并将这些数据封装到一个DishOverViewVO对象中返回，以便于调用者可以一目了然地了解菜品的状态分布
     *
     * @return DishOverViewVO 包含停售和在售菜品数量的对象
     */
    public DishOverViewVO getCountByStatus() {
        // 获取停售菜品的数量
        Integer disContinued = dishMapper.getDiscontinued();
        // 获取在售菜品的数量
        Integer sold = dishMapper.getSold();
        // 使用构建者模式创建并返回一个DishOverViewVO对象，包含停售和在售的菜品数量
        return DishOverViewVO.builder()
                .discontinued(disContinued)
                .sold(sold)
                .build();
    }
}
